package com.tianyu.inspection.entity;

import com.alibaba.fastjson2.JSONArray;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**********************************
 * @Author swyan
 * @Description
 * @Date 2020/12/29 - 16:44
 **********************************/

@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class FlyTask implements Serializable {

    /**
     * 任务存储ID
     */
    private Integer id;

    /**
     * 云平台任务编号
     */
    private String taskNumber;

    /**
     * 云平台任务名称
     */
    private String taskName;

    /**
     * 云平台任务名称
     */
    private Integer taskSource;

    /**
     * 云平台无人机编号
     */
    private String uavId;

    /**
     * 云平台无人机名称
     */
    private String uavName;

    /**
     * 云平台任务开始时间
     */
    private Date startTime;

    /**
     * 云平台任务结束时间
     */
    private Date endTime;

    /**
     * 任务飞行时长  / 秒
     */
    private Integer flightDuration;

    /**
     * 任务飞行距离 / 米
     */
    private Integer flightDistance;

    /**
     * 任务状态
     */
    private Integer flightState;

    /**
     * 任务遥测地址
     */
    private String telemetryUrl;

    /**
     * 任务视频地址
     */
    private String videoUrl;

    /**
     * 任务视频地址
     */
    @TableField(exist = false)
    private JSONArray historyVideos;

    @TableField("history_videos")
    @JsonIgnore
    private String historyVideosStr;

    public String getHistoryVideosStr() {
        return historyVideosStr;
    }

    public void setHistoryVideosStr(String historyVideosStr) {
        this.historyVideosStr = historyVideosStr;
        this.historyVideos = JSONArray.parseArray(historyVideosStr);
    }

    public JSONArray getHistoryVideos() {
        return historyVideos;
    }

    public void setHistoryVideos(String historyVideos) {
        this.historyVideos = JSONArray.parseArray(historyVideos);
        this.historyVideosStr = historyVideos;
    }

    /**
     * 任务视频地址
     */
    @TableField(exist = false)
    private String liveVideoUrl;

    /**
     * 飞手ID
     */
    private Integer userId;

    /**
     * 飞手名称
     */
    @TableField(exist = false)
    private String userName;

    /**
     * 任务所属管线ID
     */
    private Integer pipelineId;

    /**
     * 任务所属管线名称
     */
    @TableField(exist = false)
    private String pipelineName;

    /**
     * 项目ID
     */
    private Integer projectId;

    /**
     * 是否删除
     */
    private Integer state;

    @JsonIgnore
    private Date createTime;

    @JsonIgnore
    private Date modifyTime;

    @TableField(exist = false)
    private Integer dangerCount;
}
